export function isObject(val) {
  return typeof val === "object" && val !== null
}

export function hasOwn(val, key) {
  return Object.prototype.hasOwnProperty.call(val, key);
}

export function isOn(key) {
  return /^on[A-Z]/.test(key)
}

export const ShapeFlags = {
  ELEMENT: 1,                    // 00001 html 标签
  TEXT: 1 << 1,                  // 00010 文本
  COMPONENT: 1 << 2,             // 00100 组件
  TEXT_CHILDREN: 1 << 3,         // 01000 子元素是文本
  ARRAY_CHILDREN: 1 << 4,        // 10000 子元素是数组
  CHILDREN: (1 << 3) | (1 << 4), // 3|4 就是两种情况合并，就是有子元素
}